package com.icinfo.cloud.provider.punish.execute.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.util.ObjectUtils;

/**
 * @Classname ExecuteStateEnum
 * @Description 受理法院案件执行阶段
 * @Date 2022年08月25日
 * @Author zhanghongqiang
 */
@AllArgsConstructor
public enum ExecuteStateEnum {

    /**
     * 受理案件执行阶段
     * 执行阶段：SA-受案，TZ-通知，GG-公告，QZZX-强制执行，WPCZ-物品处置，JA-结案
     */
    ACCEPT_CASE("SA", "受案"),
    NOTICE("TZ", "通知"),
    ANNOUNCEMENT("GG", "公告"),
    ENFORCE("QZZX", "强制执行"),
    //去除 物品处置阶段
//    ITEM_DISPOSAL("WPCZ", "物品处置"),
    CASE_CLOSED("JA", "结案");

    /**
     * 编码
     */
    @Getter
    private String code;
    /**
     * 描述
     */
    @Getter
    private String des;


    /**
     * 描述: 根据code获取value
     *
     * @param code 编码
     * @return 描述内容
     * @author zhanghongqiang
     * @Date 2022/8/25
     */
    public static String getValueByCode(String code) {
        if (ObjectUtils.isEmpty(code)) {
            return null;
        }
        for (ExecuteStateEnum e : ExecuteStateEnum.values()) {
            if (code.equals(e.getCode())) {
                return e.getDes();
            }
        }
        return null;
    }

    /**
     * 描述: 校验code是否是合法枚举
     *
     * @param code 枚举code
     * @return boolean 是否合法枚举（true-是/false-否）
     * @author zhanghongqiang
     * @Date 2022/8/25
     */
    public static boolean isLegalEnumCode(String code) {
        boolean flag = false;
        for (ExecuteStateEnum e : ExecuteStateEnum.values()) {
            if (e.getCode().equalsIgnoreCase(code)) {
                flag = true;
                break;
            }
        }
        return flag;
    }
}
